home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Speccy ClassiX 1998
/
Speccy ClassiX 98.iso
/
amiga_system
/
the_aminet
/
dev
/
gcc
/
ixemulsdk.lha
/
man
/
cat3
/
directory.0
< prev
next >
Wrap
Text File
|
1992-08-10
|
4KB
|
133 lines
DIRECTORY(3) UNIX Programmer's Manual DIRECTORY(3)
NNAAMMEE
ooppeennddiirr, rreeaaddddiirr, tteellllddiirr, sseeeekkddiirr, rreewwiinnddddiirr, cclloosseeddiirr, ddiirrffdd - directo¡
ry operations
SSYYNNOOPPSSIISS
##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
##iinncclluuddee <<ddiirreenntt..hh>>
_D_I_R _*
ooppeennddiirr(_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
_s_t_r_u_c_t _d_i_r_e_c_t
rreeaaddddiirr(_D_I_R _*_d_i_r_p)
_l_o_n_g
tteellllddiirr(_c_o_n_s_t _D_I_R _*_d_i_r_p)
_v_o_i_d
sseeeekkddiirr(_D_I_R _*_d_i_r_p, _l_o_n_g _l_o_c)
_v_o_i_d
rreewwiinnddddiirr(_D_I_R _*_d_i_r_p)
_i_n_t
cclloosseeddiirr(_D_I_R _*_d_i_r_p)
_i_n_t
ddiirrffdd(_D_I_R _*_d_i_r_p)
DDEESSCCRRIIPPTTIIOONN
The ooppeennddiirr() function opens the directory named by _f_i_l_e_n_a_m_e, associates
a _d_i_r_e_c_t_o_r_y _s_t_r_e_a_m with it and returns a pointer to be used to identify
the _d_i_r_e_c_t_o_r_y _s_t_r_e_a_m in subsequent operations. The pointer NULL is re¡
turned if _f_i_l_e_n_a_m_e cannot be accessed, or if it cannot malloc(3) enough
memory to hold the whole thing.
The rreeaaddddiirr() function returns a pointer to the next directory entry. It
returns NULL upon reaching the end of the directory or detecting an in¡
valid sseeeekkddiirr() operation.
The tteellllddiirr() function returns the current location associated with the
named _d_i_r_e_c_t_o_r_y _s_t_r_e_a_m.
The sseeeekkddiirr() function sets the position of the next rreeaaddddiirr() operation
on the _d_i_r_e_c_t_o_r_y _s_t_r_e_a_m. The new position reverts to the one associated
with the _d_i_r_e_c_t_o_r_y _s_t_r_e_a_m when the tteellllddiirr() operation was performed.
Values returned by tteellllddiirr() are good only for the lifetime of the DIR
pointer, _d_i_r_p, from which they are derived. If the directory is closed
and then reopened, the tteellllddiirr() value may be invalidated due to unde¡
tected directory compaction. It is safe to use a previous tteellllddiirr() val¡
ue immediately after a call to ooppeennddiirr() and before any calls to
rreeaaddddiirr().
The rreewwiinnddddiirr() function resets the position of the named _d_i_r_e_c_t_o_r_y
_s_t_r_e_a_m to the beginning of the directory.
The cclloosseeddiirr() function closes the named _d_i_r_e_c_t_o_r_y _s_t_r_e_a_m and frees the
structure associated with the _d_i_r_p pointer, returning 0 on success. On
failure, -1 is returned and the global variable _e_r_r_n_o is set to indicate
the error.
The ddiirrffdd() function returns the integer file descriptor associated with
the named _d_i_r_e_c_t_o_r_y _s_t_r_e_a_m, see open(2).
Sample code which searchs a directory for entry ``name'' is:
len = strlen(name);
dirp = opendir(".");
for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
if (dp¡>d_namlen == len && !strcmp(dp¡>d_name, name)) {
(void)closedir(dirp);
return FOUND;
}
(void)closedir(dirp);
return NOT_FOUND;
SSEEEE AALLSSOO
open(2), close(2), read(2), lseek(2), dir(5)
HHIISSTTOORRYY
The ooppeennddiirr(), rreeaaddddiirr(), tteellllddiirr(), sseeeekkddiirr(), rreewwiinnddddiirr(), cclloosseeddiirr(),
and ddiirrffdd() functions appeared in 4.2BSD.
4.2 Berkeley Distribution April 19, 1991 2